Many modern software applications display three-dimensional representations of objects and scenes as part of a user interface. Three-dimensional (3D) graphics are used in a wide range of applications including video games, simulations, virtual reality applications, geospatial information applications, and applications for mapping and navigation. In many applications, 3D graphics are more useful than two-dimensional graphics at depicting real-world environments and locations because the normal interaction between humans and the real-world occurs in three dimensions.
In many 3D graphics applications, buildings or city scenes may be depicted. In modern 3D graphics, the shape and structure of the buildings are formed by polygons. Rendered polygons typically receive one or more textures that simulate the appearance of a building in the real world by depicting features such as the material and color of the building's facade and structural details such as windows. In many embodiments, a texture is a two-dimensional drawing or photograph of the building that is applied to surfaces of the 3D rendered buildings to give them a more realistic appearance. A window transparency cutout layer may be applied to the texture to mark window areas as transparent. The window transparency cutout layer can either be provided by texture artists or generated automatically using computer vision algorithms [MUSIALSKI, P., WONKA, P., ALIAGA, D., WIMMER, M., VAN GOOL, L., PURGATHOFER, W. A Survey of Urban Reconstruction. Eurographics 2012 State of The Art Report].
In order to provide increased realism, some 3D graphics applications generate building interiors that can be seen through the windows of the 3D rendered buildings. Procedural or rule-based methods have been successful in synthesizing both exteriors and interiors of buildings in large-scale city scenes [SMELIK, R. M., TUTENEL, T., BIDARRA, R., AND BENES, B. 2014. A survey on procedural modelling for virtual worlds. Computer Graphics Forum 33, 6, 31-50.]. Such methods are capable of generating plausible geometry content for building shape, facades, and interior floor plans on very large scales with reasonable variance and detail. However, the synthesis of lighting effects for buildings and city scenes has been mostly overlooked. Window lighting and the revealed interior greatly affect the appearance of city scenes at different viewing scales, especially in nighttime or otherwise dark scenes. Generating these lighting effects has equal importance to the final rendering of the scenes as other geometry contents do.
Existing procedural building methods and tools can be used generate random room lighting and interior geometry to match the exterior of buildings. Such contents are usually represented by geometry primitives and are therefore static. In realistic visualization, lighting usually changes when time progresses (e.g. more room light will turn on in dark, and shut off at mid-night). Therefore each window light needs individual representation. Some of these data can be pre-computed and stored in textures, e.g. window light masks. Unfortunately such texture contents need extra space to be stored and cannot be easily shared among different window textures.
Moreover, the majority of existing building models, such as those used in Google earth, Apple maps, and various video games, do not possess interior geometry and lighting data. Such data are not trivial to generate automatically, since the semantic information associated with geometry may not be available. Buildings with irregular floor plan and room sizes make it difficult to infer the correct layout of interior geometry. Previous methods for generating these contents, such as Interior Mapping (discussed below), assume uniform or predefined grid size of interior structure, which cannot be easily generalized to arbitrary buildings in a large-scale city scene.
A related method, referred to as Interior Mapping, provides a type of parallax effect wherein a building interior can be viewed from different angles when only drawing a building facade [VAN DONGEN, J. 2008. Interior mapping: A new technique for rendering realistic buildings. In Computer Graphics International 2008 Conference Proceedings]. Interior mapping computes the intersection of the view ray with the planes of the room to determine an intersection point in world space which is then used to look up in a room texture. In the original method the building is parameterized in world space, generally with uniform spacing for rooms. The drawback of this approach is that a world space parameterization of the building requires knowledge of the dimensions of each building, and room spacing must be set individually for each building. For a large city environment with buildings acquired from an external data source, individual parameterization in world space may not be feasible. Accordingly, a more flexible approach to parameterizing rooms on a building facade would be beneficial.